1. Field of the Invention
The present invention relates to optical media players, and more particularly, to a buffer control system for reducing a buffer delay time occurring between the playback of tracks.
2. Description of the Prior Art
Optical media players continually rank amongst the more popular consumer electronics devices for audio/visual enthusiasts. The availability of various types of music and data formats provides a wide array of choices for a consumer to select from. Some of the more popular media player types include CD disc players, VCD players, DVD players, and MP3 audio players from solid state memory or CD disc format.
One of the key features inherent in media players of these types is the ability to immediately select and play specific songs or segments. The data located in the storage medium is separated into tracks, with each individual track corresponding to a specific song or section. Tracks are further spaced with lead-in areas, preventing data overlap between adjacent tracks. Identification of each song is conveyed through a start target and end target for each track. This allows the processor to identify where on the storage medium the specific data content exists, and more particularly where the specific track data begins and ends. In essence, the start and end targets provide an index for a processor to pinpoint a specific track locations.
During playback of an audio track, the audio device will continually compare the current track time of playback, or timestamp, with the start target of the current track to provide a reference of the current timestamp with relation to critical track targets. This will also determine when playback of the current track has finished. This procedure is known as track targeting. Once the track target has been reached, the device can begin to locate and buffer the next upcoming track.
Before buffering of a new track can commence, the timestamp of the input signal must math the start target of the track. The use of a buffer acts to store in advance the audio data onto a solid state memory format before it is played. Since the process of retrieving data from solid state memory is robust and less susceptible to small shocks and impacts, it is able to play audio data without skipping. Track targeting therefore is necessary for buffering, as it provides a time reference of the buffered data, and can help determine when to begin and end the buffering process.
FIG. 1 illustrates a buffer control system according to the related art. A typical targeting circuit 100 comprises a firmware controller 110, a data buffering unit 120, and a compare circuit 130. The firmware controller 110 manages the bulk of the targeting process through its firmware protocol, as will be further described below. The audio input, or servo data 101 is sent from the optical disc and accepted by the data buffering unit 120. The servo data 101 corresponds to a specific track from the optical disc for playback, controlled by the firmware controller 110 (not shown). The servo data 101 can therefore also consist of a programmed playlist from the user, a randomized playlist, or a user selection input to the firmware controller 110. The data buffering unit 120 fills the servo data 101 data into its internal memory up to a predetermined capacity, before streaming the stored data to the next component as buffered data. The streaming buffered data (or buffered output) is then passed on to other components (not shown) of the audio system for playback. This may comprise components for amplification, signal processing, equalization, and audio formatting. The data buffering unit 120 also sends a timestamp of the buffered data to the compare circuit 130 and the firmware controller 110 for tracking.
The compare circuit 130 acts to compare the timestamp of the buffered data with the start target provided by the firmware controller 110. Once the start target has been reached (ie. the buffered data has reached the start of the desired track), a match signal is sent to the data buffering unit 120, and to the firmware controller 110. The match signal signifies to the data buffering unit 120 to begin the buffering process described above to prevent skips from small shocks. The match signal further signifies the firmware controller 110 to begin the targeting process. The firmware controller 110 then begins to compare the end target of the track to the timestamp of the buffered data until it determines a match. It is fully consumed with this process until a match is determined, from which the firmware controller 110 can then begin to target the next track for playback (not shown).
The firmware controller 110 thus can only begin to target the next track upon confirmation of an end target match of the buffered data. Because the data buffering unit 120 becomes fully purged and empty when the end target match has been reached, it must refill itself to capacity with the servo data of the newly targeted track before it can begin outputting the buffered data of the next track. The data buffering unit 120 also cannot begin the buffering of a new track until after the start target of the new track has been acquired. These factors result in a buffer delay experienced between the playback of different tracks.
The buffer delay is further explained through a timeline of the buffering process 200 as illustrated in FIG. 2. This chart simultaneously illustrates the playback data (buffered data) and servo data (input data) as a function of time. As Song 1 from the servo data is sent to the buffer at time interval 0, it begins buffering this data by storing it into memory. Playback (buffered data output) does not begin until an internal buffer capacity has been reached, resulting in a buffer delay 210 before streaming playback can start. At time interval 1, a predetermined buffer capacity will have been reached, and playback of a buffered Song 1 will begin. The firmware controller will now begin the end targeting process, as a start target match would have been detected and sent to the firmware controller. From this point on, the firmware controller will be preoccupied with monitoring the timestamp of the buffered output until it matches the end target, and the data buffering unit will continue buffering the selected track data until it receives an end match signal from the firmware controller signify the stoppage of buffering.
At time interval 3, input from the selected track data (Song 1) will have ended, however, the playback of this track will continue until the buffer has fully purged the song through its streaming output. This delay is called the purging delay 220 of the selected track data. The firmware controller is still preoccupied with targeting the buffered data, as the timestamp matching the end target will not have approached yet. Therefore, the firmware controller cannot target the start target for the next song, until it receives an end target match for the current song.
Once purging of the current track has completed at time 4, the track end target will have been reached at the buffered data output. At this point, the firmware controller will have determined and end target match, and can thus begin acquiring the next track (Song 2). This process includes determining a new start target for the next track, sending the new start target to the compare circuit 130, and tracking the new track. Another buffer delay time 210 will pass to allow for the firmware controller to accomplish this, and allow for the data buffering unit to fill the selected track data from the new track to a set capacity of its memory. Playback output of the next song does not begin until the buffer capacity has been reached at time 5, at which point the start target of this new song will be matched, allowing the firmware controller to switch back to tracking the end target of this new track.